1866D - Digital Wallet - CodeForces Solution


dp greedy

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
const int N=100005,M=998244353;
const ll inf=100000000000000000ll;
const ld PI=3.141592653589793238;
int n,a[11][N],m,k;
long long dp[11][N][12];
long long dfs(int i,int j,int l){
    if(i>n)
        return dfs(1,j+1,max(l,j-k+2));
    if(j>m)
        return 0;
    if(dp[i][j][j-l+1]!=-1)
        return dp[i][j][j-l+1];
    if(l<=j&&l<=m-k+1)
        return dp[i][j][j-l+1]=max({dp[i][j][j-l+1],dfs(i+1,j,l+1)+a[i][j],dfs(i+1,j,l)});
    else
        return dp[i][j][j-l+1]=dfs(i+1,j,l);
}
int main() {
#ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
#endif
    scanf("%d %d %d",&n,&m,&k);
    memset(dp,-1,sizeof(dp));
    for(int i=1;i<=n;++i)
        for(int j=1;j<=m;++j)
            scanf("%d",&a[i][j]);
    cout<<dfs(1,1,1);
}


Comments

Submit
0 Comments
More Questions

832A - Sasha and Sticks
292B - Network Topology
1339A - Filling Diamonds
910A - The Way to Home
617A - Elephant
48A - Rock-paper-scissors
294A - Shaass and Oskols
1213A - Chips Moving
490A - Team Olympiad
233A - Perfect Permutation
1360A - Minimal Square
467A - George and Accommodation
893C - Rumor
227B - Effective Approach
1534B - Histogram Ugliness
1611B - Team Composition Programmers and Mathematicians
110A - Nearly Lucky Number
1220B - Multiplication Table
1644A - Doors and Keys
1644B - Anti-Fibonacci Permutation
1610A - Anti Light's Cell Guessing
349B - Color the Fence
144A - Arrival of the General
1106A - Lunar New Year and Cross Counting
58A - Chat room
230A - Dragons
200B - Drinks
13A - Numbers
129A - Cookies
1367B - Even Array